package com.topnav.mc.document.bean;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.topnav.mc.document.entity.Document;
import com.topnav.mc.validator.group.IAdd;
import lombok.Data;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.util.Date;

/*
 * 文件登录
 * 接口参数
 */
@Data
@Accessors(chain=true)
public class DocumentParam {

	/** 文件名 */
	@NotBlank(message = "文件名为空")
	private String docName;

	/** 文件类型 1视频，2音频，3图片，4其它*/
	@NotNull(message = "文件类型为空")
	private Integer fileType;
	/** 重要级别 1普通，2重要 */
	@NotNull(message = "重要级别为空")
	private Integer importance;
	/** 文件长度 byte */
	@NotNull(message = "文件长度为空")
	private Long fileSize;
	/** 路径，相对路径 */
	@NotNull(message = "相对路径为空")
	private String docUri;
	/** 开始时间 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	private Date startTime;
	/** 结束时间 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	private Date endTime;
	/** 过期时间 */
	@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss",timezone="GMT+8")
	@NotNull(message = "过期时间为空")
	private Date expireTime;
	/** 拍摄时长 毫秒 */
	private Long duration;

	/** 采集站编号 */
	private String siteCode;
	/** 单位编号 */
	private String orgCode;
	/** 人员编号 */
	private String userCode;
	/** 设备编号 */
	private String deviceCode;
	/** 标注 */
	private String remark;
	/** 清淅度 1标清，2高清，3超清*/
	private Integer clarity;
	/** hash 码 */
	private String hashCode;
	/** contentType */
	private String contentType;
	/** 视频长和宽*/
	private Integer frameWidth;
	private Integer frameHeight;
	/** 子平台 id */
	private String docKey;

	public void assignTo(Document dest){
		dest.setDocName(this.docName);
		dest.setFileType(this.fileType);
		dest.setFileSize(this.fileSize);
		dest.setImportance(this.importance);
		dest.setDocUri(this.docUri);
		dest.setStartTime(this.startTime);
		dest.setEndTime(this.endTime);
		dest.setExpireTime(this.expireTime);
		dest.setDuration(this.duration);
		dest.setRemark(this.remark);
		dest.setClarity(this.clarity);
		dest.setFrameHeight(this.frameHeight);
		dest.setFrameWidth(this.frameWidth);
		dest.setHashCode(this.hashCode);
		dest.setDocKey(this.docKey);
	}
}
